package
{
	
	import flash.events.FocusEvent;
	import flash.events.MouseEvent;
	
	import mx.controls.Alert;
	import mx.controls.TextInput;
	import mx.core.Container;
	import mx.events.FlexEvent;
	import mx.rpc.events.FaultEvent;
	import mx.rpc.events.ResultEvent;
	import mx.rpc.soap.WebService;
	
	public class AnaliseCredito extends AnaliseCreditoView
	{
	
		public function AnaliseCredito()
		{
			super();
			addEventListener(FlexEvent.CREATION_COMPLETE, init);
		}

		protected function init(evento: FlexEvent): void 
		{
			btnAvaliar.addEventListener(MouseEvent.CLICK, onClickAvaliar);
			btnLimpar.addEventListener(MouseEvent.CLICK, onClickLimpar);
		}
		
		protected function onClickAvaliar(evento: MouseEvent): void 
		{
			var ws: WebService = new WebService();
			ws.wsdl = "http://169.254.212.57:8041/services/AvaliacaoServico/AvaliacaoServico?WSDL";
			ws.loadWSDL();

			ws.getOperation("avaliar").send(txtCpf.text);

			ws.addEventListener(ResultEvent.RESULT, onAvaliacaoRealizada);
			ws.addEventListener(FaultEvent.FAULT, onErro);
		}
        
		protected function onErro(evento: FaultEvent): void {
			Alert.show("Erro ao consultar serviço de Análise de Crédito.", "Mensagens");
		}
		protected function onAvaliacaoRealizada(evento: ResultEvent): void {
			if (evento.result.cpf)
			{
				txtNome.text = evento.result.nome;
				txtEndereco.text = evento.result.endereco;
				txtRenda.text = evento.result.renda;
				txtSituacao.text = evento.result.situacao;
//				Alert.show("Análise de Crédito realizada com sucesso.", "Mensagens");
			} 
			else
			{
				Alert.show("Cliente não encontrado.", "Mensagens");
			}
		}
		
		protected function onClickLimpar(evento: MouseEvent): void {
			limpar(this);
		}
		
		private function limpar(objeto: Object): void {
			var filhos: Array = objeto.getChildren();
			for each (var filho: Object in filhos) {
				if (filho is TextInput) {
					TextInput(filho).text = null;
				}
				if (filho is Container) {
					if (filho.getChildren().length > 0) {
						limpar(filho);
					}	
				}
			}
		}
	}
	
}